// pages/run/run.js
import WxValidate from "../../utils/WxValidate"
import utils from "../../utils/util"
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    form: {
      content: '', //帮助内容 
      address: '', //收货地点 
      startAddress: '', //取货地点 
      payMoney: 3, //支付金额 
    },
    baseMoney: 3, //跑腿费 
  },

  //计算金额 
  countMoney(e) {
    //获取输入金额 
    let money = e.detail.value;
    //判断是否为数字 
    if (isNaN(money)) {
      wx.showToast({
        title: '请输入正确金额。',
        icon: 'error'
      })
      return false;
    }
    if (money.trim() != '') {
      money = Number(money) + Number(this.data.baseMoney)
      this.setData({
        'form.payMoney': money
      })
    } else {
      this.setData({
        'form.payMoney': 3
      })
    }
  },

  // 收货地址
  toSelectedAAddress() {
    wx.navigateTo({
      url: '../../pages/address/address',
    })
  },

  //帮助内容 取货地点 
  timeID: 0, //定时器ID 
  handleInput(e) {
    const {name} = e.currentTarget.dataset
    const {value} = e.detail
    clearTimeout(this.timeID); //清楚timeID对应的定时器，即取消相应函数的执行 
    this.timeID = setTimeout(() => {
      switch (name) {
        case "content":
          this.setData({
            "form.content": value
          })
          break;
        case "startAddress":
          this.setData({
            "form.startAddress": value
          })
          break;
      }
    }, 500)
  },
  // 免责声明
  showStatment() {
    wx.showModal({
      title: '用户条款&隐私策略',
      content: '这里是隐私条款具体内容',
      showCancel: false
    })
  },

  //表单保存 
  async submitForm() {
    //判断当前用户是否已授权登录 
    const r = await utils.cklogin(app.globalData.userInfo)
    if (!r) {
      return false
    }
    const {
      content,
      address,
      startAddress,
      payMoney
    } = this.data.form;
    const params = {
      content,
      address,
      startAddress
    }
    //检测表单数据 
    if (!this.WxValidate.checkForm(params)) {
      const error = this.WxValidate.errorList[0]
      utils.showValidateModal(error);
      return false
    }
    wx.request({
      url: `${app.globalData.server}/addOrder`,
      method: 'POST',
      data: {
        openid: app.globalData.userInfo.openid,
        orderType: '校园跑腿',
        startAddress, //起点 
        endAddress: address, //目的地 
        payMoney,
        publicTime: utils.formatTime(new Date()),
        status: '待帮助',
        info: {
          content
        },
        userInfo: app.globalData.userInfo
      },
      success: (res) => {
        wx.hideLoading({})
        if (res.data == 'success') {
          wx.showToast({
            title: '提交成功',
            icon: 'success'
          })
          setTimeout(() => {
            wx.switchTab({
              url: '../order/order',
            })
          }, 1000);
        } else {
          wx.hideLoading({})
          wx.showToast({
            title: '发布失败',
            icon: 'error'
          })
        }
      },
      fail: (err) => {
        wx.hideLoading({})
        wx.showToast({
          title: '发布失败',
          icon: 'error'
        })
      }
    })
  },
  /*** 生命周期函数--监听页面加载 */
  onLoad(options) {
    this.initValidate();
  },
  initValidate() {
    // 验证字段的规则 
    const rules = {
      content: {
        required: true,
        maxlength: 30
      },
      startAddress: {
        required: true,
        maxlength: 30
      },
      address: {
        required: true,
      }
    }
    // 验证字段的提示信息，若不传则调用默认的信息 
    const messages = {
      content: {
        required: '请输入帮助信息',
        maxlength: '帮助信息能超过30个字符'
      },
      startAddress: {
        required: '请输入取货地点',
        maxlength: '取货地点不能超过30个字符'
      },
      address: {
        required: '请选择取货地点',
      }
    }
    // 创建实例对象 
    this.WxValidate = new WxValidate(rules, messages)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})